1. Field
This disclosure relates to processing received packets for testing a communications network.
2. Description of the Related Art
In many types of communications networks, each message to be sent is divided into portions of fixed or variable length. These portions may be referred to as packets, frames, cells, datagrams, or data units, all of which are referred to herein as packets. Communications networks that transmit messages as packets are called packet switched networks.
Each packet contains a portion of the original message, commonly called the body of the packet. In addition, each packet contains identification and routing information, commonly called a packet header. The packets are then sent individually over the network through multiple switches or nodes and then reassembled at a final destination using the information contained in the packet headers, before being delivered to a target device or end user. At the receiving end, the reassembled message is passed to the end user in a format compatible with the user's equipment.
Most packet switched networks operate according to a set of established protocols, implemented in a collection of interfaced layers known as a protocol stack. Each layer of the protocol stack in the transmitting process may add a respective header to the packet, which provides information to the corresponding layer in a receiving process. Thus, as a packet passes down through the protocol stack on a transmitting system, the packet may gain an additional header at each layer. At the bottom of the stack, the transmitting process may then frame the packet and physically transmit it over the network toward its destination. When the packet reaches its destination, the packet will then pass up through the protocol stack of the destination system. Each layer of the protocol stack in the destination system may obtain useful information from its associated header and will strip its header from the packet before passing the packet up to the next layer for processing.
A variety of standards are known for use in packet switched networks. One of the best known of these, the TCP/IP suite, is typically used to manage reliable transmission of packets throughout the Internet and other IP networks. A second commonly-used protocol is UDP (User Datagram Protocol). Unlike TCP, UDP provides no error recovery or reliability mechanisms. Because of this simplicity, UDP packets have shorter headers than TCP packets, and thus consume fewer system resources. Among other applications, UDP may be used to transmit real-time audio or video content.
The upper level of the protocol stack is the application layer. The best known application-layer protocol may be HTTP (HyperText Transport Protocol) commonly used to communicate pages on the World Wide Web. Another important application-layer protocol is RTP (Real-time Transport Protocol) which is commonly used to deliver data with real-time characteristics. A typical application of RTP is to deliver audio or video content to one or more recipients participating in an interactive session. RTP is commonly used to deliver VOIP (voice over internet protocol) calls. RTP is normally used with UDP, but may also be used with TCP or other transport-layer protocols. RTP packets are transmitted in sequence, and include an embedded sequence number and/or timestamp that may be used on reception to reconstruct the proper sequence.
Before placing a network into use, the network and the network devices, network media, network segments and network applications included therein, may be tested to ensure successful operation. Network media, segments, devices and applications may be tested, for example, to ensure that they function as intended, comply with supported protocols, and can withstand anticipated traffic demands. Such testing may also be performed on already deployed network devices, network segments and network applications.
In order to test a switched network or a network device included in a communications network, it is often desirable for a network testing system to transmit and/or receive network traffic having a data rate near or equal to the line rate or maximum possible data rate of the network path or device. A network testing system may also process some or all of the received packets to accumulate network performance statistics. Multiple processors may be required to process received packets.
A series of packets transmitted from a single source to a single destination and belonging to a single body of information will be referred to herein as a “session.” A session may be, for example, a single direction of an internet telephone call, or a streaming audio or video transmission. A single network path or network device may be capable of transmitting thousands or tens of thousands of sessions concurrently. In this application, “concurrently” means “within the same time” and “simultaneously” means “at exactly the same time.”
Throughout this description, elements appearing in figures are assigned three-digit reference designators, where the most significant digit is the figure number and the two least significant digits are specific to the element. An element that is not described in conjunction with a figure may be presumed to have the same characteristics and function as a previously-described element having a reference designator with the same least significant digits.